home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.xml;
-
- import com.extensibility.util.StringUtilities;
- import java.util.Enumeration;
- import java.util.Hashtable;
-
- public class XDRWriter extends SchemaWriter {
- ElemProxy elemProxy = new ElemProxy(this);
- AttrProxy attrProxy = new AttrProxy(this);
- EntityProxy entityProxy = new EntityProxy(this);
- NotationProxy notationProxy = new NotationProxy(this);
- static final int DATATYPES = 1;
-
- public XDRWriter(SchemaIntf var1) {
- super(var1, var1.getURI());
- }
-
- public XDRWriter(SchemaIntf var1, URI var2) {
- super(var1, var2);
- }
-
- private String qualifiedAttrName(String var1) {
- AttributeDeclaration var2 = (AttributeDeclaration)super.schema.getNamedDeclaration(var1, Class.forName("com.extensibility.xml.AttributeDeclaration"));
- return var2 != null && var2.isGlobal() ? ((SchemaWriter)this).getQName(var1, Class.forName("com.extensibility.xml.AttributeDeclaration")) : var1;
- }
-
- void writeMetaProps(SXE var1, MetaPropHash var2, BaseDeclaration var3) {
- if (var2 != null) {
- Enumeration var4 = ((Hashtable)var2).keys();
-
- while(var4 != null && var4.hasMoreElements()) {
- String var5 = (String)var4.nextElement();
- Object var6 = ((Hashtable)var2).get(var5);
- if (var6 instanceof String && (var3 == null || !var6.equals(var3.getMetaProp(var5)))) {
- if (!var5.equals("pkey") && !var5.equals("fkey")) {
- if (var5.indexOf(":") != -1) {
- var1.writeLineBreak();
- var1.writeAttr(var5, var6.toString());
- }
- } else {
- var1.writeAttr(String.valueOf("xa:").concat(String.valueOf(var5)), var6.toString());
- }
- }
- }
-
- }
- }
-
- void writeMetaPropSubelements(SXE var1, MetaPropHash var2) {
- Enumeration var3 = ((Hashtable)var2).keys();
-
- while(var3 != null && var3.hasMoreElements()) {
- String var4 = (String)var3.nextElement();
- Object var5 = ((Hashtable)var2).get(var4);
- if (var5 instanceof String[]) {
- String[] var9 = (String[])var5;
- if (var4.indexOf(":") != -1) {
- for(int var10 = 0; var10 < var9.length; ++var10) {
- var1.writeElem(var4, -1);
- var1.writeText(var9[var10], false);
- var1.flush(var4);
- }
- }
- } else if (var5 instanceof Hashtable) {
- var1.writeElem(var4, true);
- Hashtable var6 = (Hashtable)var5;
- Enumeration var7 = var6.keys();
-
- while(var7.hasMoreElements()) {
- String var8 = (String)var7.nextElement();
- var1.writeAttr(var8, var6.get(var8).toString());
- }
- }
- }
-
- }
-
- private void writeXDRComments(SXE var1, Enumeration var2) {
- if (var2 != null) {
- while(var2.hasMoreElements()) {
- Comment var3 = (Comment)var2.nextElement();
- var1.writeElem("description", -1);
- if (var3.getKind().length() > 0) {
- var1.writeAttr("usage", var3.getKind());
- }
-
- this.writeValidHTML(var1, var3.getComment(false));
- var1.flush("description");
- }
-
- }
- }
-
- String getPrefix(int var1) {
- switch (var1) {
- case 1:
- return "dt:";
- default:
- return "";
- }
- }
-
- private boolean hasDBKeyMetaProps(MetaPropHash var1) {
- if (var1 == null) {
- return false;
- } else {
- Enumeration var2 = ((Hashtable)var1).keys();
-
- while(true) {
- if (var2 != null && var2.hasMoreElements()) {
- String var3 = (String)var2.nextElement();
- Object var4 = ((Hashtable)var1).get(var3);
- if (!(var4 instanceof String) || !var3.equals("pkey") && !var3.equals("fkey")) {
- continue;
- }
-
- return true;
- }
-
- return false;
- }
- }
- }
-
- private boolean hasMetaProps(String var1, boolean var2) {
- var1 = String.valueOf(var1).concat(String.valueOf(':'));
-
- for(int var3 = 0; var3 < super.schema.getCount(); ++var3) {
- BaseDeclaration var4 = super.schema.getIndDeclaration(var3);
- Enumeration var5 = super.schema.getIndDeclaration(var3).getMetaProps();
- if (var2 && this.hasDBKeyMetaProps(var4.getMetaPropHash())) {
- return true;
- }
-
- if (var5 != null) {
- while(var5.hasMoreElements()) {
- if (var5.nextElement().toString().indexOf(var1) == 0) {
- return true;
- }
- }
- }
- }
-
- return false;
- }
-
- protected SchemaWriter.DeclWriterProxyIntf createProxy(ElementDeclaration var1) {
- this.elemProxy.setDecl(var1);
- return this.elemProxy;
- }
-
- protected SchemaWriter.DeclWriterProxyIntf createProxy(AttributeDeclaration var1) {
- this.attrProxy.setDecl(var1);
- return this.attrProxy;
- }
-
- protected SchemaWriter.DeclWriterProxyIntf createProxy(GeneralEntityDeclaration var1) {
- this.entityProxy.setDecl(var1);
- return this.entityProxy;
- }
-
- protected SchemaWriter.DeclWriterProxyIntf createProxy(NotationDeclaration var1) {
- this.notationProxy.setDecl(var1);
- return this.notationProxy;
- }
-
- protected void writeHeader(SXE var1) {
- var1.writeComment("Generated by XML Authority. Conforms to XML Data subset for IE 5");
- var1.writeElem("Schema");
- var1.writeAttr("name", super.schema.getURI().getShortName());
- var1.writeLineBreak();
- var1.writeAttr("xmlns", "urn:schemas-microsoft-com:xml-data");
- var1.writeLineBreak();
- var1.writeAttr("xmlns:dt", "urn:schemas-microsoft-com:datatypes");
- if (super.schema.getNamedNamespace("xa") == null && this.hasMetaProps("xa", true)) {
- var1.writeLineBreak();
- var1.writeAttr("xmlns:xa", "www.extensibility.com/schemas/xdr/metaprops.xdr");
- }
-
- if (super.schema.getNamedNamespace("exv") == null && ((SchemaWriter)this).getShowErrors()) {
- var1.writeLineBreak();
- var1.writeAttr("xmlns:exv", "urn:extensibility:exv:errors");
- }
-
- }
-
- protected void writeSchemaComments(SXE var1) {
- Enumeration var2 = super.schema.getComments();
- this.writeXDRComments(var1, var2);
- }
-
- protected void writeIncludes(SXE var1, Enumeration var2) {
- while(var2.hasMoreElements()) {
- ExternalSubset var3 = (ExternalSubset)var2.nextElement();
- URI var4 = var3.getSystemURI();
- var1.writeLineBreak();
- var1.writeAttr(String.valueOf("xmlns:").concat(String.valueOf(((SchemaWriter)this).getPrefix(var4))), var4.getFullName());
- }
-
- }
-
- protected void writeNamespaces(SXE var1, Enumeration var2) {
- while(var2.hasMoreElements()) {
- NamespaceDeclaration var3 = (NamespaceDeclaration)var2.nextElement();
- String var4 = var3.getNamespace();
- var1.writeLineBreak();
- var1.writeAttr(String.valueOf("xmlns:").concat(String.valueOf(((BaseDeclaration)var3).getName())), var4 == null ? "" : var4);
- }
-
- this.writeMetaProps(var1, super.schema.getMetaPropHash(), (BaseDeclaration)null);
- this.writeMetaPropSubelements(var1, super.schema.getMetaPropHash());
- }
-
- private void writeValidHTML(SXE var1, String var2) {
- int var3 = StringUtilities.skipWhite(var2, 0);
- if (var3 < var2.length() && var2.charAt(var3) != '<') {
- var1.writeRawText("<p>");
- var1.writeRawText(var2);
- var1.writeRawText("</p>");
- } else {
- var1.writeRawText(var2);
- }
-
- }
-
- // $FF: synthetic method
- static void access$2000071(XDRWriter var0, SXE var1, Enumeration var2) {
- var0.writeXDRComments(var1, var2);
- }
-
- // $FF: synthetic method
- static String access$2000171(XDRWriter var0, String var1) {
- return var0.qualifiedAttrName(var1);
- }
- }
-